Everything is an object (well, almost everything)
除了一開始提的 Primitive value, 其餘皆為 object
Constructor : Person
Instances
{
"name": "sui",
"job": "student",
"birth": 1998
}
{
"name": "len",
"job": "programmer"
}
Inheritance 繼承
Constructor : Teacher
如果 Person -> Teacher (Teacher 繼承 Person)
Constructor : Teacher
Protptype
JavaScript 並不像 Java ...等物件導向語言有明確的 class 來區分概念與實體(Instance),在創建物件中,
Protptype Chain : 依據繼承向上查找
Instance(Protptype) -> Constructor(Protptype) -> Object(Protptype) -> null
小結:
所有JavaScript 物件都有 Protptype property -> 得以繼承
將欲被其他物件繼承的method & property 放入 Protptype property -> 得以繼承
建構子的 Protptype property 不屬於其本身,而是所有透過他產生的實例(instance)
當method 或 property被呼叫,先查找物件本身,若無,則往其Protptype 查找 -> Protptype Chain
今天的內容相對較少~因為一半時間花在完成小遊戲 pig game,但因為內容幾乎都是已經寫過的基礎再延伸或是小小變化,就沒放上來了
明天實作今天的概念~繼續努力!
新手練功中,如有錯誤觀念,歡迎指正! 明天進入實作~不知道會不會有趣點
課程 : https://www.udemy.com/course/the-complete-javascript-course/
來源 : https://developer.mozilla.org/zh-TW/docs/Learn/JavaScript/Objects/Inheritance
https://cythilya.github.io/2018/10/26/prototype/